#ifndef GTKCELLRENDERERRELAY_H_
#define GTKCELLRENDERERRELAY_H_

#include <gtk/gtk.h>

G_BEGIN_DECLS

#define GTK_TYPE_CELL_RENDERER_RELAY            (gtk_cell_renderer_relay_get_type())
#define GTK_CELL_RENDERER_RELAY(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_CELL_RENDERER_RELAY, GtkCellRendererRelay))
#define GTK_CELL_RENDERER_RELAY_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),  GTK_TYPE_CELL_RENDERER_RELAY, GtkCellRendererRelayClass))
#define GTK_IS_CELL_RENDERER_RELAY(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_TYPE_CELL_RENDERER_RELAY))
#define GTK_IS_CELL_RENDERER_RELAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),  GTK_TYPE_CELL_RENDERER_RELAY))
#define GTK_CELL_RENDERER_RELAY_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),  GTK_TYPE_CELL_RENDERER_RELAY, GtkCellRendererRelayClass))

typedef struct _GtkCellRendererRelay      GtkCellRendererRelay;
typedef struct _GtkCellRendererRelayClass GtkCellRendererRelayClass;

struct _GtkCellRendererRelay {
  GtkCellRendererText parent;

  PangoColor relay;
  guint relay_set : 1;

  guint nabla;

  guint relay_height;
  guint relay_height_set : 1;
};

struct _GtkCellRendererRelayClass {
  GtkCellRendererTextClass parent_class;
};

GType gtk_cell_renderer_relay_get_type();
GtkCellRenderer *gtk_cell_renderer_relay_new();

void gtk_cell_renderer_relay_set_relay_gdk(GtkCellRendererRelay *cell_relay,
                                           GdkColor             *relay);
void gtk_cell_renderer_relay_set_relay_set(GtkCellRendererRelay *cell_relay,
                                           gboolean              relay_set);
gboolean gtk_cell_renderer_relay_get_relay_set(GtkCellRendererRelay *cell_relay);

void gtk_cell_renderer_relay_set_nabla(GtkCellRendererRelay *cell_relay,
                                       gboolean              nabla);
gboolean gtk_cell_renderer_relay_get_nabla(GtkCellRendererRelay *cell_relay);

void gtk_cell_renderer_relay_set_relay_height(GtkCellRendererRelay *cell_relay,
                                              guint                 relay_height);
guint gtk_cell_renderer_relay_get_relay_height(GtkCellRendererRelay *cell_relay);
void gtk_cell_renderer_relay_set_relay_height_set(GtkCellRendererRelay *cell_relay,
                                                  gboolean              relay_height_set);
gboolean gtk_cell_renderer_relay_get_relay_height_set(GtkCellRendererRelay *cell_relay);

G_END_DECLS

#endif /*GTKCELLRENDERERRELAY_H_*/
